<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>eCommerce: Plik źródłowy D:/CentrumXP/e-Commerce/eCommerceDev/SklepWebApplication/controls/ctrlCategoryTreeView.ascx.cs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Wygenerowano przez Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Szukaj');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Strona&nbsp;główna</span></a></li>
      <li><a href="namespaces.html"><span>Pakiety</span></a></li>
      <li><a href="annotated.html"><span>Klasy</span></a></li>
      <li class="current"><a href="files.html"><span>Pliki</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Szukaj" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>Lista&nbsp;plików</span></a></li>
      <li><a href="globals.html"><span>Składowe&nbsp;plików</span></a></li>
    </ul>
  </div>
<h1>D:/CentrumXP/e-Commerce/eCommerceDev/SklepWebApplication/controls/ctrlCategoryTreeView.ascx.cs</h1><a href="ctrl_category_tree_view_8ascx_8cs.html">Idź do dokumentacji tego pliku.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>;
<a name="l00002"></a>00002 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Data;
<a name="l00003"></a>00003 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Configuration;
<a name="l00004"></a>00004 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Collections;
<a name="l00005"></a>00005 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Collections.Generic;
<a name="l00006"></a>00006 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Web;
<a name="l00007"></a>00007 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Web.Security;
<a name="l00008"></a>00008 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Web.UI;
<a name="l00009"></a>00009 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Web.UI.WebControls;
<a name="l00010"></a>00010 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Web.UI.WebControls.WebParts;
<a name="l00011"></a>00011 <span class="keyword">using</span> <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Web.UI.HtmlControls;
<a name="l00012"></a>00012 <span class="keyword">using</span> ShopBLL;
<a name="l00013"></a>00013 <span class="keyword">using</span> ShopModel;
<a name="l00014"></a>00014 
<a name="l00015"></a><a class="code" href="classcontrols___category_tree_view.html">00015</a> <span class="keyword">public</span> <span class="keyword">partial class </span><a class="code" href="classcontrols___category_tree_view.html">controls_CategoryTreeView</a> : <a class="code" href="_common_tools_8cs.html#a81a223a02c34d82b47199f08308847f2">System</a>.Web.UI.UserControl
<a name="l00016"></a>00016 {
<a name="l00017"></a>00017 <span class="preprocessor">    #region PROPERTIES</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span>
<a name="l00019"></a>00019     <span class="keyword">public</span> TreeNode <a class="code" href="classcontrols___category_tree_view.html#a428e1f928f8fa1b1de2a453e047541a8">SelectedNode</a>
<a name="l00020"></a><a class="code" href="classcontrols___category_tree_view.html#a428e1f928f8fa1b1de2a453e047541a8">00020</a>     {
<a name="l00021"></a>00021         <span class="keyword">get</span> { <span class="keywordflow">return</span> tvCategory.SelectedNode; }
<a name="l00022"></a>00022     }
<a name="l00023"></a>00023 
<a name="l00024"></a>00024     <span class="keyword">public</span> TreeNodeCollection <a class="code" href="classcontrols___category_tree_view.html#ab922252e27272abff9fd7095d30ff2f5">Nodes</a>
<a name="l00025"></a><a class="code" href="classcontrols___category_tree_view.html#ab922252e27272abff9fd7095d30ff2f5">00025</a>     {
<a name="l00026"></a>00026         <span class="keyword">get</span> { <span class="keywordflow">return</span> tvCategory.Nodes; }
<a name="l00027"></a>00027     }
<a name="l00028"></a>00028 
<a name="l00029"></a><a class="code" href="classcontrols___category_tree_view.html#ab25d7385e2d04edc6525a6a2b9a4d139">00029</a>     <span class="keyword">public</span> <span class="keyword">event</span> EventHandler <a class="code" href="classcontrols___category_tree_view.html#ab25d7385e2d04edc6525a6a2b9a4d139">SelectedNodeChange</a>;
<a name="l00030"></a>00030 
<a name="l00031"></a>00031     <span class="keyword">public</span> TreeNodeTypes <a class="code" href="classcontrols___category_tree_view.html#a9bf36e3e51533cf09e26757d58ca4139">ShowCheckBoxes</a>
<a name="l00032"></a><a class="code" href="classcontrols___category_tree_view.html#a9bf36e3e51533cf09e26757d58ca4139">00032</a>     {
<a name="l00033"></a>00033         <span class="keyword">get</span>
<a name="l00034"></a>00034         {
<a name="l00035"></a>00035             <span class="keywordflow">return</span> tvCategory.ShowCheckBoxes;
<a name="l00036"></a>00036         }
<a name="l00037"></a>00037 
<a name="l00038"></a>00038         <span class="keyword">set</span>
<a name="l00039"></a>00039         {
<a name="l00040"></a>00040             tvCategory.ShowCheckBoxes = value;
<a name="l00041"></a>00041         }
<a name="l00042"></a>00042     }
<a name="l00043"></a>00043 
<a name="l00044"></a>00044     <span class="keyword">public</span> List&lt;int&gt; <a class="code" href="classcontrols___category_tree_view.html#aaba3f5a40552fca2dcbafe9085909f69">SelectedCategories</a>
<a name="l00045"></a><a class="code" href="classcontrols___category_tree_view.html#aaba3f5a40552fca2dcbafe9085909f69">00045</a>     {
<a name="l00046"></a>00046         <span class="keyword">get</span>
<a name="l00047"></a>00047         {
<a name="l00048"></a>00048             List&lt;int&gt; result = <span class="keyword">new</span> List&lt;int&gt;();
<a name="l00049"></a>00049             <a class="code" href="classcontrols___category_tree_view.html#abd7f0009c6c1f2d0b124b242340a63e4">GetCheckedNodes</a>(<a class="code" href="classcontrols___category_tree_view.html#ab922252e27272abff9fd7095d30ff2f5">Nodes</a>[0], result);
<a name="l00050"></a>00050             <span class="keywordflow">return</span> result;
<a name="l00051"></a>00051         }
<a name="l00052"></a>00052 
<a name="l00053"></a>00053         <span class="keyword">set</span>
<a name="l00054"></a>00054         {
<a name="l00055"></a>00055             <a class="code" href="classcontrols___category_tree_view.html#aca8e73ff88110758054ae762a2599dcb">SetCheckedNodes</a>(<a class="code" href="classcontrols___category_tree_view.html#ab922252e27272abff9fd7095d30ff2f5">Nodes</a>[0], value);
<a name="l00056"></a>00056             <a class="code" href="classcontrols___category_tree_view.html#aa035bc77dbd14f0df3c044b805d1de36">CheckAndFixTreeView</a>(<a class="code" href="classcontrols___category_tree_view.html#ab922252e27272abff9fd7095d30ff2f5">Nodes</a>[0]);
<a name="l00057"></a>00057         }
<a name="l00058"></a>00058     }
<a name="l00059"></a>00059 
<a name="l00060"></a>00060     <span class="keyword">public</span> <span class="keywordtype">bool</span> <a class="code" href="classcontrols___category_tree_view.html#a0cfc0caa2b9e4087866464fc1e060eb4">ShowImportance</a>
<a name="l00061"></a><a class="code" href="classcontrols___category_tree_view.html#a0cfc0caa2b9e4087866464fc1e060eb4">00061</a>     {
<a name="l00062"></a>00062         <span class="keyword">get</span>
<a name="l00063"></a>00063         {
<a name="l00064"></a>00064             <span class="keywordflow">return</span> showImportance;
<a name="l00065"></a>00065         }
<a name="l00066"></a>00066         <span class="keyword">set</span>
<a name="l00067"></a>00067         {
<a name="l00068"></a>00068             showImportance = value;
<a name="l00069"></a>00069         }
<a name="l00070"></a>00070     }
<a name="l00071"></a>00071 
<a name="l00072"></a>00072     <span class="keyword">public</span> TreeNodeSelectAction <a class="code" href="classcontrols___category_tree_view.html#a2439b3c2ae01604ebeac39177d622213">NodeSelectAction</a>
<a name="l00073"></a><a class="code" href="classcontrols___category_tree_view.html#a2439b3c2ae01604ebeac39177d622213">00073</a>     {
<a name="l00074"></a>00074         <span class="keyword">get</span> { <span class="keywordflow">return</span> nodeSelectAction; }
<a name="l00075"></a>00075         <span class="keyword">set</span> { nodeSelectAction = value; }
<a name="l00076"></a>00076     }
<a name="l00077"></a>00077 
<a name="l00078"></a>00078     <span class="keyword">public</span> TreeNodeSelectAction <a class="code" href="classcontrols___category_tree_view.html#ae255b47b35f571a2e38c270e97fe89b1">RootSelectAction</a>
<a name="l00079"></a><a class="code" href="classcontrols___category_tree_view.html#ae255b47b35f571a2e38c270e97fe89b1">00079</a>     {
<a name="l00080"></a>00080         <span class="keyword">get</span> { <span class="keywordflow">return</span> rootSelectAction; }
<a name="l00081"></a>00081         <span class="keyword">set</span> { rootSelectAction = value; }
<a name="l00082"></a>00082     }
<a name="l00083"></a>00083 
<a name="l00084"></a>00084     <span class="keyword">private</span> <a class="code" href="class_shop_model_1_1_category.html">Category</a> CategoryTree
<a name="l00085"></a>00085     {
<a name="l00086"></a>00086         <span class="keyword">get</span>
<a name="l00087"></a>00087         {
<a name="l00088"></a>00088             <span class="keywordflow">if</span> (categoryTree == null)
<a name="l00089"></a>00089                 categoryTree = <a class="code" href="class_shop_b_l_l_1_1_products_manager.html">ProductsManager</a>.Instance.GetChildernTreeCategories(-1, <span class="keyword">false</span>, CommonTools.CurrentLanguageID);
<a name="l00090"></a>00090 
<a name="l00091"></a>00091             <span class="keywordflow">return</span> categoryTree;
<a name="l00092"></a>00092         }
<a name="l00093"></a>00093     }
<a name="l00094"></a>00094 
<a name="l00095"></a>00095 <span class="preprocessor">    #endregion PROPERTIES</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span>
<a name="l00097"></a>00097 <span class="preprocessor">    #region METHODS</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span>
<a name="l00099"></a><a class="code" href="classcontrols___category_tree_view.html#a5cfe092bffa3409ce41261c30235120e">00099</a>     <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#a5cfe092bffa3409ce41261c30235120e">GenerateCategoryTree</a>()
<a name="l00100"></a>00100     {
<a name="l00101"></a>00101         tvCategory.Nodes.Clear();
<a name="l00102"></a>00102         TreeNode Root = <span class="keyword">new</span> TreeNode(Resources.Language.AllCategories, <span class="stringliteral">&quot;-1&quot;</span>);
<a name="l00103"></a>00103         tvCategory.Nodes.Add(Root);
<a name="l00104"></a>00104         Root.PopulateOnDemand = <span class="keyword">true</span>;
<a name="l00105"></a>00105         Root.SelectAction = rootSelectAction;
<a name="l00106"></a>00106         Root.Expand();
<a name="l00107"></a>00107     }
<a name="l00108"></a>00108 
<a name="l00109"></a><a class="code" href="classcontrols___category_tree_view.html#a9777dd7f5a818f0e3b3874f39185d064">00109</a>     <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#a9777dd7f5a818f0e3b3874f39185d064">ExpandNode</a>(TreeNode ParentNode)
<a name="l00110"></a>00110     {
<a name="l00111"></a>00111         List&lt;Category&gt; ChildCategories = <a class="code" href="class_shop_b_l_l_1_1_products_manager.html">ProductsManager</a>.Instance.GetChildCategories(<span class="keywordtype">int</span>.Parse(ParentNode.Value), <span class="keyword">false</span>, ShopBLL.CommonTools.CurrentLanguageID);
<a name="l00112"></a>00112         TreeNode ChildNode;
<a name="l00113"></a>00113 
<a name="l00114"></a>00114         <span class="keywordflow">foreach</span> (<a class="code" href="class_shop_model_1_1_category.html">Category</a> ChildCategory <span class="keywordflow">in</span> ChildCategories)
<a name="l00115"></a>00115         {
<a name="l00116"></a>00116             <span class="keywordtype">string</span> name = <span class="keywordtype">string</span>.Empty;
<a name="l00117"></a>00117 
<a name="l00118"></a>00118             <span class="keywordflow">if</span> (showImportance)
<a name="l00119"></a>00119                 name = String.Format(<span class="stringliteral">&quot;{0} [{1}]&quot;</span>, ChildCategory.<a class="code" href="class_shop_model_1_1_category.html#a9ba39cf4a9b6bd14d9f241db8c3f96e3">Name</a>, ChildCategory.<a class="code" href="class_shop_model_1_1_category.html#af56794f5b00011419a385de0b64cd81b">Importance</a>);
<a name="l00120"></a>00120             <span class="keywordflow">else</span>
<a name="l00121"></a>00121                 name = ChildCategory.<a class="code" href="class_shop_model_1_1_category.html#a9ba39cf4a9b6bd14d9f241db8c3f96e3">Name</a>;
<a name="l00122"></a>00122 
<a name="l00123"></a>00123             <span class="keywordflow">if</span> (ChildCategory.<a class="code" href="class_shop_model_1_1_category.html#ab9527b21054661bde6de5c16928e2a4b">IsActive</a>)
<a name="l00124"></a>00124                 ChildNode = <span class="keyword">new</span> TreeNode(name, ChildCategory.<a class="code" href="class_shop_model_1_1_category.html#a13e9efc15ed24149b7e7478322cfec9c">IDcategory</a>.ToString());
<a name="l00125"></a>00125             <span class="keywordflow">else</span>
<a name="l00126"></a>00126                 ChildNode = <span class="keyword">new</span> TreeNode(<span class="stringliteral">&quot;&lt;font color=&apos;gray&apos;&gt;&quot;</span> + name + <span class="stringliteral">&quot;&lt;/font&gt;&quot;</span>, ChildCategory.<a class="code" href="class_shop_model_1_1_category.html#a13e9efc15ed24149b7e7478322cfec9c">IDcategory</a>.ToString());
<a name="l00127"></a>00127 
<a name="l00128"></a>00128             ChildNode.PopulateOnDemand = <span class="keyword">true</span>;
<a name="l00129"></a>00129             ChildNode.SelectAction = <a class="code" href="classcontrols___category_tree_view.html#a2439b3c2ae01604ebeac39177d622213">NodeSelectAction</a>;
<a name="l00130"></a>00130             ChildNode.Checked = ParentNode.Checked;
<a name="l00131"></a>00131 
<a name="l00132"></a>00132             ParentNode.ChildNodes.Add(ChildNode);
<a name="l00133"></a>00133 
<a name="l00134"></a>00134             <span class="keywordflow">if</span> (!ChildCategory.<a class="code" href="class_shop_model_1_1_category.html#a41473dc1b1d88baa064f4028be3f4691">HaveSubcategories</a>)
<a name="l00135"></a>00135                 ChildNode.Expand();
<a name="l00136"></a>00136         }
<a name="l00137"></a>00137 
<a name="l00138"></a>00138         ParentNode.Expand();
<a name="l00139"></a>00139     }
<a name="l00140"></a>00140 
<a name="l00141"></a><a class="code" href="classcontrols___category_tree_view.html#ae41b3faa1a90105b97adc2033e5968ff">00141</a>     <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#ae41b3faa1a90105b97adc2033e5968ff">SelectNode</a>(<span class="keywordtype">int</span> CategoryID, <span class="keywordtype">bool</span> ExpandOnly)
<a name="l00142"></a>00142     {
<a name="l00143"></a>00143         <span class="keywordflow">if</span> (CategoryID &gt; 0)
<a name="l00144"></a>00144         {
<a name="l00145"></a>00145             List&lt;int&gt; AncestorIDs = <a class="code" href="class_shop_b_l_l_1_1_products_manager.html">ProductsManager</a>.Instance.GetCategoryAncestorIDs(CategoryID);
<a name="l00146"></a>00146 
<a name="l00147"></a>00147             TreeNode found;
<a name="l00148"></a>00148             TreeNode root = <a class="code" href="classcontrols___category_tree_view.html#ab922252e27272abff9fd7095d30ff2f5">Nodes</a>[0];
<a name="l00149"></a>00149 
<a name="l00150"></a>00150             <span class="keywordflow">while</span> (root != null)
<a name="l00151"></a>00151             {
<a name="l00152"></a>00152                 found = null;
<a name="l00153"></a>00153                 <span class="keywordflow">foreach</span> (TreeNode tn <span class="keywordflow">in</span> root.ChildNodes)
<a name="l00154"></a>00154                 {
<a name="l00155"></a>00155                     <span class="keywordflow">if</span> (<span class="keywordtype">int</span>.Parse(tn.Value) == CategoryID)
<a name="l00156"></a>00156                     {
<a name="l00157"></a>00157                         <span class="keywordflow">if</span> (!ExpandOnly)
<a name="l00158"></a>00158                             tn.Select();
<a name="l00159"></a>00159                         <span class="keywordflow">else</span>
<a name="l00160"></a>00160                             <span class="keywordflow">if</span> (!tn.Expanded.HasValue || !tn.Expanded.Value)
<a name="l00161"></a>00161                                 <a class="code" href="classcontrols___category_tree_view.html#a9777dd7f5a818f0e3b3874f39185d064">ExpandNode</a>(tn);
<a name="l00162"></a>00162 
<a name="l00163"></a>00163                         <span class="keywordflow">return</span>;
<a name="l00164"></a>00164                     }
<a name="l00165"></a>00165                     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (AncestorIDs.Contains(<span class="keywordtype">int</span>.Parse(tn.Value)))
<a name="l00166"></a>00166                     {
<a name="l00167"></a>00167                         <span class="keywordflow">if</span> (!tn.Expanded.HasValue || !tn.Expanded.Value)
<a name="l00168"></a>00168                             <a class="code" href="classcontrols___category_tree_view.html#a9777dd7f5a818f0e3b3874f39185d064">ExpandNode</a>(tn);
<a name="l00169"></a>00169 
<a name="l00170"></a>00170                         found = tn;
<a name="l00171"></a>00171                         <span class="keywordflow">break</span>;
<a name="l00172"></a>00172                     }
<a name="l00173"></a>00173                 }
<a name="l00174"></a>00174                 root = found;
<a name="l00175"></a>00175             }
<a name="l00176"></a>00176         }
<a name="l00177"></a>00177         <span class="keywordflow">else</span>
<a name="l00178"></a>00178             tvCategory.Nodes[0].Select();
<a name="l00179"></a>00179     }
<a name="l00180"></a>00180 
<a name="l00181"></a><a class="code" href="classcontrols___category_tree_view.html#abd7f0009c6c1f2d0b124b242340a63e4">00181</a>     <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#abd7f0009c6c1f2d0b124b242340a63e4">GetCheckedNodes</a>(TreeNode node, List&lt;int&gt; list)
<a name="l00182"></a>00182     {
<a name="l00183"></a>00183         <span class="keywordflow">if</span> (node.ChildNodes.Count &gt; 0)
<a name="l00184"></a>00184         {
<a name="l00185"></a>00185             <span class="keywordflow">foreach</span> (TreeNode t <span class="keywordflow">in</span> node.ChildNodes)
<a name="l00186"></a>00186             {
<a name="l00187"></a>00187                 <a class="code" href="classcontrols___category_tree_view.html#abd7f0009c6c1f2d0b124b242340a63e4">GetCheckedNodes</a>(t, list);
<a name="l00188"></a>00188             }
<a name="l00189"></a>00189         }
<a name="l00190"></a>00190         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (node.Checked)
<a name="l00191"></a>00191         {
<a name="l00192"></a>00192             list.Add(Int32.Parse(node.Value));
<a name="l00193"></a>00193 
<a name="l00194"></a>00194             <span class="keywordflow">if</span> (node.ChildNodes.Count == 0)
<a name="l00195"></a>00195             {
<a name="l00196"></a>00196                 <span class="keywordtype">string</span>[] nodePath = node.ValuePath.Split(<span class="charliteral">&apos;/&apos;</span>);
<a name="l00197"></a>00197                 <a class="code" href="class_shop_model_1_1_category.html">Category</a> current = CategoryTree;
<a name="l00198"></a>00198 
<a name="l00199"></a>00199                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i &lt; nodePath.Length; i++)
<a name="l00200"></a>00200                 {
<a name="l00201"></a>00201                     <span class="keywordtype">int</span> <span class="keywordtype">id</span> = <span class="keywordtype">int</span>.Parse(nodePath[i]);
<a name="l00202"></a>00202                     current = current.<a class="code" href="class_shop_model_1_1_category.html#a865bbca7484b58f4888a14e679ff7b18">Children</a>.Find(delegate(<a class="code" href="class_shop_model_1_1_category.html">Category</a> c) { <span class="keywordflow">return</span> c.<a class="code" href="class_shop_model_1_1_category.html#a13e9efc15ed24149b7e7478322cfec9c">IDcategory</a> == id; });
<a name="l00203"></a>00203                 }
<a name="l00204"></a>00204 
<a name="l00205"></a>00205                 list.AddRange(<a class="code" href="classcontrols___category_tree_view.html#a2949bbcd362a924505bedc17d5169896">GetSubcategoriesID</a>(current));
<a name="l00206"></a>00206             }
<a name="l00207"></a>00207         }
<a name="l00208"></a>00208     }
<a name="l00209"></a>00209 
<a name="l00210"></a><a class="code" href="classcontrols___category_tree_view.html#a2949bbcd362a924505bedc17d5169896">00210</a>     <span class="keyword">protected</span> List&lt;int&gt; <a class="code" href="classcontrols___category_tree_view.html#a2949bbcd362a924505bedc17d5169896">GetSubcategoriesID</a>(<a class="code" href="class_shop_model_1_1_category.html">Category</a> category)
<a name="l00211"></a>00211     {
<a name="l00212"></a>00212         List&lt;int&gt; result = <span class="keyword">new</span> List&lt;int&gt;();
<a name="l00213"></a>00213 
<a name="l00214"></a>00214         <span class="keywordflow">foreach</span> (<a class="code" href="class_shop_model_1_1_category.html">Category</a> subcategory <span class="keywordflow">in</span> category.Children)
<a name="l00215"></a>00215         {
<a name="l00216"></a>00216             result.Add(subcategory.<a class="code" href="class_shop_model_1_1_category.html#a13e9efc15ed24149b7e7478322cfec9c">IDcategory</a>);
<a name="l00217"></a>00217             result.AddRange(<a class="code" href="classcontrols___category_tree_view.html#a2949bbcd362a924505bedc17d5169896">GetSubcategoriesID</a>(subcategory));
<a name="l00218"></a>00218         }
<a name="l00219"></a>00219 
<a name="l00220"></a>00220         <span class="keywordflow">return</span> result;
<a name="l00221"></a>00221     }
<a name="l00222"></a>00222 
<a name="l00223"></a><a class="code" href="classcontrols___category_tree_view.html#aca8e73ff88110758054ae762a2599dcb">00223</a>     <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#aca8e73ff88110758054ae762a2599dcb">SetCheckedNodes</a>(TreeNode node, List&lt;int&gt; list)
<a name="l00224"></a>00224     {
<a name="l00225"></a>00225         <span class="keywordflow">if</span> (list != null &amp;&amp; list.Count &gt; 0)
<a name="l00226"></a>00226         {
<a name="l00227"></a>00227             <span class="keywordflow">foreach</span> (<span class="keywordtype">int</span> i <span class="keywordflow">in</span> list)
<a name="l00228"></a>00228                 <a class="code" href="classcontrols___category_tree_view.html#ae41b3faa1a90105b97adc2033e5968ff">SelectNode</a>(i, <span class="keyword">true</span>);
<a name="l00229"></a>00229 
<a name="l00230"></a>00230             <span class="keywordflow">if</span> (node.ChildNodes.Count &gt; 0)
<a name="l00231"></a>00231             {
<a name="l00232"></a>00232                 <span class="keywordtype">int</span> index = 0;
<a name="l00233"></a>00233                 <span class="keywordflow">foreach</span> (TreeNode t <span class="keywordflow">in</span> node.ChildNodes)
<a name="l00234"></a>00234                 {
<a name="l00235"></a>00235                     <span class="keywordflow">if</span> (<span class="keywordtype">int</span>.TryParse(t.Value, out index) &amp;&amp; list.Contains(index))
<a name="l00236"></a>00236                         t.Checked = <span class="keyword">true</span>;
<a name="l00237"></a>00237                     <span class="keywordflow">else</span>
<a name="l00238"></a>00238                         t.Checked = <span class="keyword">false</span>;
<a name="l00239"></a>00239 
<a name="l00240"></a>00240                     if (t.ChildNodes.Count &gt; 0)
<a name="l00241"></a>00241                         <a class="code" href="classcontrols___category_tree_view.html#aca8e73ff88110758054ae762a2599dcb">SetCheckedNodes</a>(t, list);
<a name="l00242"></a>00242                 }
<a name="l00243"></a>00243             }
<a name="l00244"></a>00244         }
<a name="l00245"></a>00245         <span class="keywordflow">else</span>
<a name="l00246"></a>00246         {
<a name="l00247"></a>00247             <span class="keywordflow">foreach</span> (TreeNode tn <span class="keywordflow">in</span> tvCategory.Nodes)
<a name="l00248"></a>00248                 tn.Checked = <span class="keyword">false</span>;
<a name="l00249"></a>00249         }
<a name="l00250"></a>00250     }
<a name="l00251"></a>00251 
<a name="l00252"></a><a class="code" href="classcontrols___category_tree_view.html#a5a8c04c4c1e398edc9564a874332967a">00252</a>     <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#a5a8c04c4c1e398edc9564a874332967a">ClearSelectedNodes</a>(TreeNode node)
<a name="l00253"></a>00253     {
<a name="l00254"></a>00254         <span class="keywordflow">if</span> (node.ChildNodes.Count &gt; 0)
<a name="l00255"></a>00255         {
<a name="l00256"></a>00256             <span class="keywordflow">foreach</span> (TreeNode t <span class="keywordflow">in</span> node.ChildNodes)
<a name="l00257"></a>00257             {
<a name="l00258"></a>00258                 t.Checked = <span class="keyword">false</span>;
<a name="l00259"></a>00259                 <span class="keywordflow">if</span> (t.ChildNodes.Count &gt; 0)
<a name="l00260"></a>00260                 {
<a name="l00261"></a>00261                     <a class="code" href="classcontrols___category_tree_view.html#a5a8c04c4c1e398edc9564a874332967a">ClearSelectedNodes</a>(t);
<a name="l00262"></a>00262                 }
<a name="l00263"></a>00263             }
<a name="l00264"></a>00264         }
<a name="l00265"></a>00265     }
<a name="l00266"></a>00266 
<a name="l00267"></a><a class="code" href="classcontrols___category_tree_view.html#aa035bc77dbd14f0df3c044b805d1de36">00267</a>     <span class="keyword">protected</span> <span class="keywordtype">bool</span> <a class="code" href="classcontrols___category_tree_view.html#aa035bc77dbd14f0df3c044b805d1de36">CheckAndFixTreeView</a>(TreeNode node)
<a name="l00268"></a>00268     {
<a name="l00269"></a>00269         <span class="keywordtype">bool</span> result = <span class="keyword">true</span>;
<a name="l00270"></a>00270         <span class="keywordflow">foreach</span> (TreeNode child <span class="keywordflow">in</span> node.ChildNodes)
<a name="l00271"></a>00271         {
<a name="l00272"></a>00272             <span class="keywordflow">if</span> (child.ChildNodes.Count &gt; 0)
<a name="l00273"></a>00273                 result &amp;= <a class="code" href="classcontrols___category_tree_view.html#aa035bc77dbd14f0df3c044b805d1de36">CheckAndFixTreeView</a>(child);
<a name="l00274"></a>00274             <span class="keywordflow">else</span>
<a name="l00275"></a>00275                 result &amp;= child.Checked;
<a name="l00276"></a>00276         }
<a name="l00277"></a>00277 
<a name="l00278"></a>00278         node.Checked = result;
<a name="l00279"></a>00279         <span class="keywordflow">return</span> result;
<a name="l00280"></a>00280     }
<a name="l00281"></a>00281 
<a name="l00282"></a>00282 <span class="preprocessor">    #endregion METHODS</span>
<a name="l00283"></a>00283 <span class="preprocessor"></span>
<a name="l00284"></a>00284 <span class="preprocessor">    #region EVENTS</span>
<a name="l00285"></a>00285 <span class="preprocessor"></span>
<a name="l00286"></a><a class="code" href="classcontrols___category_tree_view.html#aaf93d6bc87b6ed0cb256da36629b509b">00286</a>     <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#aaf93d6bc87b6ed0cb256da36629b509b">PopulateNode</a>(Object sender, TreeNodeEventArgs e)
<a name="l00287"></a>00287     {
<a name="l00288"></a>00288         <span class="keywordflow">if</span> (e.Node.PopulateOnDemand)
<a name="l00289"></a>00289             <a class="code" href="classcontrols___category_tree_view.html#a9777dd7f5a818f0e3b3874f39185d064">ExpandNode</a>(e.Node);
<a name="l00290"></a>00290     }
<a name="l00291"></a>00291 
<a name="l00292"></a><a class="code" href="classcontrols___category_tree_view.html#ad8e8eca8531a29dee284fd1af5ed1fcf">00292</a>     <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#ad8e8eca8531a29dee284fd1af5ed1fcf">tvCategory_SelectedNodeChanged</a>(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00293"></a>00293     {
<a name="l00294"></a>00294         <span class="keywordflow">if</span> (<a class="code" href="classcontrols___category_tree_view.html#ab25d7385e2d04edc6525a6a2b9a4d139">SelectedNodeChange</a> != null)
<a name="l00295"></a>00295             <a class="code" href="classcontrols___category_tree_view.html#ab25d7385e2d04edc6525a6a2b9a4d139">SelectedNodeChange</a>(<span class="keyword">this</span>, e);
<a name="l00296"></a>00296     }
<a name="l00297"></a>00297 
<a name="l00298"></a>00298 <span class="preprocessor">    #endregion EVENTS</span>
<a name="l00299"></a>00299 <span class="preprocessor"></span>
<a name="l00300"></a>00300 <span class="preprocessor">    #region PAGE EVENTS</span>
<a name="l00301"></a>00301 <span class="preprocessor"></span>
<a name="l00302"></a><a class="code" href="classcontrols___category_tree_view.html#ab4083452f06f11ff11589b6c17174246">00302</a>     <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#ab4083452f06f11ff11589b6c17174246">Page_Init</a>(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00303"></a>00303     {
<a name="l00304"></a>00304         <span class="keywordflow">if</span> (!IsPostBack)
<a name="l00305"></a>00305             <a class="code" href="classcontrols___category_tree_view.html#a5cfe092bffa3409ce41261c30235120e">GenerateCategoryTree</a>();
<a name="l00306"></a>00306     }
<a name="l00307"></a>00307 
<a name="l00308"></a><a class="code" href="classcontrols___category_tree_view.html#a5c4364ff70da269096bba5780cc46735">00308</a>     <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcontrols___category_tree_view.html#a5c4364ff70da269096bba5780cc46735">Page_Load</a>(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00309"></a>00309     {
<a name="l00310"></a>00310         <span class="keywordflow">if</span> (<a class="code" href="classcontrols___category_tree_view.html#a9bf36e3e51533cf09e26757d58ca4139">ShowCheckBoxes</a> == TreeNodeTypes.All)
<a name="l00311"></a>00311         {
<a name="l00312"></a>00312             tvCategory.Attributes.Add(<span class="stringliteral">&quot;onclick&quot;</span>, <span class="stringliteral">&quot;OnCheckBoxCheckChanged(event)&quot;</span>);
<a name="l00313"></a>00313         }
<a name="l00314"></a>00314     }
<a name="l00315"></a>00315 
<a name="l00316"></a>00316 <span class="preprocessor">    #endregion PAGE EVENTS</span>
<a name="l00317"></a>00317 <span class="preprocessor"></span>
<a name="l00318"></a>00318 <span class="preprocessor">    #region VARIABLES</span>
<a name="l00319"></a>00319 <span class="preprocessor"></span>
<a name="l00320"></a>00320     <span class="keyword">private</span> <span class="keywordtype">bool</span> showImportance;
<a name="l00321"></a>00321 
<a name="l00322"></a>00322     <span class="keyword">private</span> <a class="code" href="class_shop_model_1_1_category.html">Category</a> categoryTree = null;
<a name="l00323"></a>00323 
<a name="l00324"></a>00324     <span class="keyword">private</span> TreeNodeSelectAction nodeSelectAction = TreeNodeSelectAction.Select;
<a name="l00325"></a>00325     <span class="keyword">private</span> TreeNodeSelectAction rootSelectAction = TreeNodeSelectAction.Select;
<a name="l00326"></a>00326 
<a name="l00327"></a>00327 <span class="preprocessor">    #endregion VARIABLES</span>
<a name="l00328"></a>00328 <span class="preprocessor"></span>}
</pre></div></div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Klasy</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Przestrzenie nazw</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Pliki</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Funkcje</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Zmienne</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Wyliczenia</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Właściwości</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Zdarzenia</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"/><address style="text-align: right;"><small>Wygenerowano Mon Nov 9 06:08:19 2009 dla eCommerce programem&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>
